home *** CD-ROM | disk | FTP | other *** search
- From: zodiac@darkness.gun.de (Ralph Seichter)
- Subject: Async I/O problem, can you help?
- Date: Mon, 1 Apr 96 20:16:00 CET
- Message-ID: <zpaf43aCY70MZ1@da23.darkness.gun.de>
- X-ZC-PGP-KEY-AVAIL:
- Path: tim.xenologics.com!darkness.gun.de
- X-ZC-Telefon: V+49-2667-969000
- X-Newsreader: Zodiac's Point 37.212 [REGISTERED 0001] via Connectline-CLMSortin 2.27
- Newsgroups: comp.sys.amiga.programmer
- X-Gateway: ZConnect DA darkness.gun.de [Connectline/AmigaOS]
-
- I have written a small program to experiment with async I/O operations,
- which first opens the serial device (or the "duart.device" in my case),
- then spawns a child process to handle the device input, and finally sends
- a string to my modem so I get data transmitted back.
-
- The problem I experience is that the following statements don't do what
- should (see "device.c/handleDeviceInput"):
-
- while (!(signals & SIGBREAKF_CTRL_C))
- {
- if (!sdi.pending)
- startRead(&serInput, 1);
-
- Printf("Waiting for signals\n");
- signals = Wait(sdi.sigRead | SIGBREAKF_CTRL_C);
-
- if (signals & sdi.sigRead)
- {
- Printf("Got device signal\n");
- if (CheckIO((struct IORequest *)sdi.ior))
- {
- sdi.pending = FALSE;
- Printf("Device input '%lc'\n", serInput);
- }
- }
- }
- stopRead();
-
- SendIO() sends a read request, then I wait for Ctrl-C and the message
- port's signal bit. But the latter never arrives! If I use 'Scout' to send
- the proper signal manually, CheckIO() finds the read request complete and
- the correct byte is printed. The very same code segment works just fine if
- I don't spawn it as a child process.
-
- I include the sources so you can see what 'sdi' etc. is all about. Thanks
- for every hint.
-
- -Ralph
-
-
- begin 644 AsyncIO.lzx
- M3%I8``P`"@0```<`]0`````````*`@$```H```FU/<#:3J?M^M&.YA!!<WEN,
- M8TE/+V-O;6UO;BYH#P"3``````````H"`0``"@``";4]=?OUBIT\#:JM%$%SQ
- M>6YC24\O<')O=&\O;6%I;BYH#P#H````=`$```H"`0``"@``";4]=/3:=4O6%
- MK(`R%D%S>6YC24\O<')O=&\O9&5V:6-E+F@0`A.```"H`)F1@`)X*O=$EP%@P
- M"M!*HKS0#R-CTP5;23ASD`^[I:#J96Z-6_(2__\0_P``8```4@``=C3O))U"Q
- MP.KY]])*"08"U>C=$*TU?M/",TM%-*1;VKG_OX520..$2$QN4=LK8]QPF88L^
- MR2ZDV'FP5OX='`KEQ],EQK8B<5PR+WY3"MG'Q"`*SB`\JQC,RSV2W.);"=AF_
- MVE4W@O0N7_K^NT*23!J";3P:3J'4*J]QHT,8-HPQ\9$W>>TI@4`+DO0Y/LF"U
- M2=SX-HI/J45(+,@Y+UN"96C]5:P^W(TY3T)FH)Y![G_W9<X#`V&ERE`*S`TE!
- M+"Q"#JN2",]U>'!"46IX2\'+X7#A+]'9IE)V(],T\#-%H":3.#,;K]^G;#?<#
- M@DO`_UA7[$HG-?#\G[5,GN"WJG47:8A^7?S5L@,97$K\/8Q>.JMD&DG3=]88<
- M.N$(_'%4KPKYIPTGH,`L%JW_Q87D[WC[),0?SU"[I18M70`````'```)````%
- M````"@(!```*```)M3W`LAJ>J-?Z[E,007-Y;F-)3R]D979I8V4N8P<`K```_
- M```````*`@$```H```FU/;NBO0?8R;IDH`U!<WEN8TE/+V=S="YC!P#`!0``/
- M!`8```H"`0``"@``";4]NXBXF)<)`7'K#D%S>6YC24\O;6%I;BYC>`(;8```J
- M&:@IF0``^RO;2+H#SJ<-@;H5<3I0XJC@UMUR>E6[`6V*1XTT`O5^4W>;*2_A"
- M)/?]D=\``(G``4P``!V0K_'6JUZS*[5%!+;F>M;'5F/XF;3S,_Z42;3PU*28,
- M2]JQ:S)KL6J[)G3&,=.\YY$FS*3178815J"%>/R'Z"N@!_@W^+G?_:>`S`"28
- M$R#%EPDJ:U(LMX%NZ%W@>+R'H>!9O&%[P/%OA_S@&+HH"UUZ^(C[@>8/`MY)<
- MF:5>JH27I<"&6IEAM45R+D!UPI*RP,FAONV%5'`DN30DDFJT44"I*!D5`[8!"
- M2D#KPP6J"%J)I@X::.7D!)$L<7ZD9IH(=6$*3J=`Q?B0''H.AZ`HT`\+8VY2/
- M`W6MI%:`Y_6]'B2:&-(H,985EFDFO%U!0:D_S<?.\H)*HL8A58/TKR<`_<0PF
- M@?G/XDA'^7"Z^.:!"MWE7*`2%(_N8C;!\(@ZFG`=R\!NH-#TM"01\]$!>]6D8
- MH,1<DKU_4&$"4O1.RPI;#&N.`36O#6^G?M0EU.ORI;I`5OJ5I$Y$&TCX]E!+@
- MBZVVASDM8"&[#0($:A@RGWW/>HXFPIU!,O)JRZ.($5*0BP-3#$&.;UN>V%]*S
- MAR>8#G$#8YV)4CE8C]_)&CRG='G^@OQP-AE]9BZRU4`$+?UO2F2VQ?V(^0".Z
- M33YFPY57:>H.%/"_B@RU0_N4Y7>E4F-ZF.@BN$!S<29FJ93M&P-&"!HJ8FFOO
- MEIG+T4:DG4]81'!Q@Q<GBM%B#$05)+BL6$%#$H=`#6;=KD.3LMBMN\>#SB&96
- M/$Z*;C'U,$?,(8X-')KC*".-W8)O/<*4!I[F))MS=L4':LP1LXY.?O'WKI,PD
- M[;_T_UKVS-5UFAV?^/H"[]KFQXC0R5:WA_^%K;+JY9](!E7\'1MLORHG[16#C
- MKP<OUOK>F_!X+`CP24$`4T=*],-'=_!NI.(#3X<W4DH.`P"W_N<!@30W:A0:?
- MW5^ZE<KAD)A]X+=CZSA?UVFI9=8I&6'+@1+FV@^H$M6[3(\.#OY#,D`288'.!
- M^^G40#4R`5J:A[[Z@U&2WBO>47TM)N0[(N=M@(V.HC:EM(O4%V3,04(HRSRQK
- MIAS"Z=LR<Y&/DL%\XOIAHP7WS1H$)MKQ57BQ)&:E2<&:%.-9I?R^3"=OXD2C_
- MQ$R)IELU:F8=J/28H^('*$(IL/[@S*!B)IEAIZ6;19W.QB#GO)V]`W4O;T1!@
- MS1W5Q*N4S?-5:H%O.YB:EL.N(WFVCM&:6!DE=<.Y_`ZTC+.NC27'GA9#MA[N4
- M05G*Y/TV'_E;V_"=(QQT`6[76N0`5__S5S_7Z/?7V[A7CQ[EH&E4?_O4B27V$
- M^C+'.%.V*V%K`\JAZU19=ETF'O0H/_\COL#"9>:A;<#\1"W*5[X95&X(+#O
- M-_MFTY8I<`AOL&YRM+68HH;_F2:J(M)4UA7PR$A25ILF3=F!4GC,HS:?9=U=B
- M08A+*2/A#X]"SJUA4<H&G,!0\4GCP-K6R28W9]['4?NI@Y(*B=RDSSC^19D)2
- MCKT9JVO4MZ*VTC_5TD7\M.-SN20!Y_$>3IS^%.6B^CZVXWZJ1TN>IX8M&H0/G
- M=@5SU6&P']Z.FVC6S;E%E`DK=(M.4]@T3-LA,?A'W'C*'Y]Z"I?FRV)ZWL[B!
- M2$8<EVRK`)\.9R;\T-J_B[FY1DE87BQEZ/,\SQF&`GCQ8>]2/'BWT00FSPJ$?
- M4WY$3WCBY%F#*YA"6M\-)C7$;(JK9_\[\^PB_=S*4=>,)K1$+VX\SIG;VRF*)
- M1O=!3\.+R`Z?IV#WI>B:/FV(_<%+EBMI.M"_[?M]P`8:%NR%;L`L/M:`#QG:@
- M/$XV]_Z\*^][C^FMJ6D`GZ]8B>'KY,%R<[/[BM8.YDP`NNE7FYY`!WS>\W-X"
- MWE`$<$?#_SL).)2ZF\YQOTR?L./E,K.F9LQ*WC[E&J&>0\['(@]VHVFS?<?FZ
- M/PR/\)\\9SZ+AY!;R9QGSB)05,(F&_\VTJ48JD65@,40;DF-':%<1.CYU)!^L
- MY;SMG8GW!B7<O1\=`>=WIG,F,R96W7);>?"59(?D7I4Z="A,C#T8TGX[ER1H3
- M``$```\`$`(````````*`@$```H```FU/;N2Z>0F.I[S?!%!<WEN8TE/+U--Q
- M04M%1DE,10\`Y@`````````*`@$```H```FU/;H%#E=J=+QO=A%!<WEN8TE/"
- M+U-#3U!424].4P<`J@```$8"```*`@$```H```FU.7,_P8#^<$*?W`]!<WEN`
- M8TE/+T-04DE.2508`A4```";`*$9@`/X*_X3X!XKX!70%K+"2ND7JI)77J=3K
- M:>)"TMR@V\Y,O(;OIKM)I'_>'?\``@``"F0```B@V'[O9-E9BW^);=O^*1=`4
- MNW6EZH29:9!.W1+I8*$2=#O]_TO7N*P3B8&CP:S)'1"\Y)H3L:^3JU,'=T(:Z
- M&OO0>0J25UGC*`6W=>--!40<N'$#_Z2&[5*<6TEICDO]NFE*N;4*(_`.,=WY;
- M1]6P&,`A3@]DWVT\Q!=:1SIS<_'P`.=/3C3SPV;QWHAJLJFR5`.>D[QC3'^/N
- M5Y"-,46'@9UA<2>+36Z*%F!FO?S'*\W@T\,TPE4^I"_/Z?R+GOT<X[S@D/_02
- MPTS/HVH5_#?A?,C]J7_C8#"G!=S2,_EP7L_-T8C_S=:N"R>[V<NG#7Z173"B,
- MC<<F5^HZ_5MP20)F4=#C%3&F\T:2@SCVV+B;3K(-LM)_0T_!(LE1.+C:__3L-
- MS$0,;%9PM6."B-+3<7LC$$+$DI9R19PL[!.!6K9(.$P"P!(<<3'&7EZ>WNI6-
- M7B=CY'`OU/P$Q=<L(3WAAPCZ87FEL(3G>0'H-I"-6>O>"1:)`+PW(Y(,U=7@F
- ME+)5;$+@BQR3:2=-!+0__RU,+=LLC<?-+WN.U*-.)G&,N-"JH9M>EDOTPW(4.
- M&*(I":"TV(5:H+DH7&N^B5-&H--K-D;:1[.NBA54T^]1W6$E=`BR@)5=`VRRE
- M35:<ZFBSD0:-NGV=+A1<NAEP>VJ,(';/]\5Y6O5_)9V-/LY4Y05FCW<\1U_9V
- (Z--%\@````"-_
- ``
- end
- size 2933
-